extensions: more direct trc dispatch
authorØyvind Kolås <pippin@gimp.org>
Wed, 30 Aug 2017 15:29:01 +0000 (17:29 +0200)
committerØyvind Kolås <pippin@gimp.org>
Wed, 30 Aug 2017 15:29:01 +0000 (17:29 +0200)
babl/babl-fish-path.c
extensions/cairo.c
extensions/float.c

index f89aae108993fb9d4743d73e2f498bc1848fc9af..dd7c018b2b35ac873d184ef4efe27c8d6b106168 100644 (file)
@@ -666,7 +666,7 @@ babl_fish_path (const Babl *source,
 
     if (!done)
     {
-      if(1)babl_conversion_class_for_each (show_item, (void*)source->format.space);
+      if(0)babl_conversion_class_for_each (show_item, (void*)source->format.space);
       //babl_format_class_for_each (show_fmt, NULL);
       //babl_model_class_for_each (show_fmt, NULL);
     }
index 99cca1528b94b92625fa748124a631baf873ce7f..c53da2a5cc4044e3a21c0234697ff777fa60157e 100644 (file)
@@ -300,11 +300,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src,
       float alpha  = *fsrc++;
       if (alpha >= 1.0)
       {
-        int val = _babl_trc_from_linearf (trc[2], blue) * 0xff + 0.5f;
+        int val = trc[2]->trc.fun_from_linear (trc[2], blue) * 0xff + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
-        val = _babl_trc_from_linearf (trc[1], green) * 0xff + 0.5f;
+        val = trc[1]->trc.fun_from_linear (trc[1], green) * 0xff + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
-        val = _babl_trc_from_linearf (trc[0], red) * 0xff + 0.5f;
+        val = trc[0]->trc.fun_from_linear (trc[0], red) * 0xff + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
         *cdst++ = 0xff;
       }
@@ -316,11 +316,11 @@ conv_rgbafloat_cairo32_le (const Babl *conversion,unsigned char *src,
       else
       {
         float balpha = alpha * 0xff;
-        int val = _babl_trc_from_linearf (trc[2], blue) * balpha + 0.5f;
+        int val = trc[2]->trc.fun_from_linear (trc[2], blue) * balpha + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
-        val = _babl_trc_from_linearf (trc[1], green) * balpha + 0.5f;
+        val = trc[1]->trc.fun_from_linear (trc[1], green) * balpha + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
-        val = _babl_trc_from_linearf (trc[0], red) * balpha + 0.5f;
+        val = trc[0]->trc.fun_from_linear (trc[0], red) * balpha + 0.5f;
         *cdst++ = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
         *cdst++ = balpha + 0.5f;
       }
@@ -346,7 +346,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src,
       float alpha  = *fsrc++;
       if (alpha >= 1.0)
       {
-        int val = _babl_trc_from_linearf (trc[0], gray) * 0xff + 0.5f;
+        int val = trc[0]->trc.fun_from_linear (trc[0], gray) * 0xff + 0.5f;
         val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
         *cdst++ = val;
         *cdst++ = val;
@@ -361,7 +361,7 @@ conv_yafloat_cairo32_le (const Babl *conversion,unsigned char *src,
       else
       {
         float balpha = alpha * 0xff;
-        int val = _babl_trc_from_linearf (trc[0], gray) * balpha + 0.5f;
+        int val = trc[0]->trc.fun_from_linear (trc[0], gray) * balpha + 0.5f;
         val = val >= 0xff ? 0xff : val <= 0 ? 0 : val;
         *cdst++ = val;
         *cdst++ = val;
index cfe7b2b7ebf6b24534e6cc49037ebf9bff9a33f3..0ebe81a2d4347d34023b39bed13ca3172a47f172 100644 (file)
@@ -45,9 +45,9 @@ conv_rgbaF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src,
    while (n--)
      {
        float alpha = fsrc[3];
-       *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++) * alpha;
-       *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++) * alpha;
-       *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++) * alpha;
+       *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+       *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+       *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
        *fdst++ = *fsrc++;
      }
   return samples;
@@ -78,17 +78,17 @@ conv_rgbAF_linear_rgbAF_gamma (const Babl *conversion,unsigned char *src,
          }
        else if (alpha >= 1.0)
          {
-           *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
-           *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
-           *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+           *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++) * alpha;
+           *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++) * alpha;
+           *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++) * alpha;
            *fdst++ = *fsrc++;
          }
        else
          {
            float alpha_recip = 1.0 / alpha;
-           *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++ * alpha_recip) * alpha;
-           *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++ * alpha_recip) * alpha;
-           *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++ * alpha_recip) * alpha;
+           *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++ * alpha_recip) * alpha;
+           *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++ * alpha_recip) * alpha;
+           *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++ * alpha_recip) * alpha;
            *fdst++ = *fsrc++;
          }
      }
@@ -109,9 +109,9 @@ conv_rgbaF_linear_rgbaF_gamma (const Babl *conversion,unsigned char *src,
 
    while (n--)
      {
-       *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
-       *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
-       *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+       *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+       *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+       *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
        *fdst++ = *fsrc++;
      }
   return samples;
@@ -130,9 +130,9 @@ conv_rgbF_linear_rgbF_gamma (const Babl *conversion,unsigned char *src,
 
    while (n--)
      {
-       *fdst++ = _babl_trc_from_linearf (trc[0], *fsrc++);
-       *fdst++ = _babl_trc_from_linearf (trc[1], *fsrc++);
-       *fdst++ = _babl_trc_from_linearf (trc[2], *fsrc++);
+       *fdst++ = trc[0]->trc.fun_from_linear (trc[0], *fsrc++);
+       *fdst++ = trc[1]->trc.fun_from_linear (trc[1], *fsrc++);
+       *fdst++ = trc[2]->trc.fun_from_linear (trc[2], *fsrc++);
      }
   return samples;
 }
@@ -151,9 +151,9 @@ conv_rgbaF_gamma_rgbaF_linear (const Babl *conversion,unsigned char *src,
 
    while (n--)
      {
-       *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
-       *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
-       *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+       *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+       *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+       *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
        *fdst++ = *fsrc++;
      }
   return samples;
@@ -172,9 +172,9 @@ conv_rgbF_gamma_rgbF_linear (const Babl *conversion,unsigned char *src,
 
    while (n--)
      {
-       *fdst++ = _babl_trc_to_linearf (trc[0], *fsrc++);
-       *fdst++ = _babl_trc_to_linearf (trc[1], *fsrc++);
-       *fdst++ = _babl_trc_to_linearf (trc[2], *fsrc++);
+       *fdst++ = trc[0]->trc.fun_to_linear (trc[0], *fsrc++);
+       *fdst++ = trc[1]->trc.fun_to_linear (trc[1], *fsrc++);
+       *fdst++ = trc[2]->trc.fun_to_linear (trc[2], *fsrc++);
      }
   return samples;
 }